package com.kuyun.base.service;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;

import com.kuyun.base.base.Page;
import com.kuyun.base.model.BaseDictionary;
import com.kuyun.base.model.ValidFormResult;
import com.kuyun.base.model.ZtreeBean;

/**
 * 基础字典服务接口
 * 
 * @author 王坤
 * @date 创建时间：2016年6月18日 下午7:58:05
 */
public interface BaseDictionaryService {

	/**
	 * 增加字典信息服务
	 */
	public String insert(BaseDictionary baseDictionary);

	/**
	 * 更新字典信息
	 */
	public String update(BaseDictionary baseDictionary);

	/**
	 * 查询所有字典信息
	 */
	public List<ZtreeBean> getDictionaryTree();

	/**
	 * 根据code查询字典对象
	 * 
	 * @author 唐靖
	 *
	 * @date 2016年6月25日下午2:39:06
	 *
	 * @param dicPrivilegeTypeMenu
	 * @return
	 */
	public BaseDictionary findByCode(String dicPrivilegeTypeMenu);

	/**
	 * 根据ID查询字典信息
	 */
	public BaseDictionary findByID(String id);

	/**
	 * 根据Parent查询字典信息
	 */
	public Page<BaseDictionary> findByParentCode(Page<BaseDictionary> page, String parentId, String search);

	/**
	 * 根据Parent查询字典信息总量
	 */
	public Integer findByParentCodeCount(String parentId, String search);

	/**
	 * 删除字典信息
	 */
	public ValidFormResult deleteDic(@Param("parentId") String parentId);

	/**
	 * 判断code是否存在
	 */
	public boolean checkCode(BaseDictionary baseDictionary, String id);

	/**
	 * 根据父级字典code获取子集id及code
	 * 
	 * @author 史梁辰
	 *
	 * @date 2016-7-9下午11:06:39
	 *
	 * @param code
	 * @return
	 */
	@Deprecated
	public List<BaseDictionary> getDicByParentCode(String code);

	/**
	 * 根据父级字典code获取子集id及code
	 * 
	 * @author All
	 *
	 * @date 2016-7-9下午11:06:39
	 *
	 * @param code
	 * @return
	 */
	public List<BaseDictionary> getDicByParentCodeAll(String code);
}
